package dao;

import controle.ControleProduto;

/**
 * @author Carlos, Derek e Hellen
 */
public abstract class DAOFactory {

	private static ProdutoDAO produtoDAO;

	public static ProdutoDAO getProdutoDAO() {
		if (produtoDAO == null) {
			produtoDAO = new ProdutoDAOImp();
		}

		if (produtoDAO.isConnectionClose()) {
			produtoDAO.openConnection();
		}

		return produtoDAO;
	}

	private static ClienteDAO clienteDAO;

	public static ClienteDAO getClienteDAO() {
		if (clienteDAO == null) {
			clienteDAO = new ClienteDAOImp();
		}

		if (clienteDAO.isConnectionClose()) {
			clienteDAO.openConnection();
		}

		return clienteDAO;
	}

	private static AdministradorDAO administradorDAO;

	public static AdministradorDAO getAdministradorDAO() {
		if (administradorDAO == null) {
			administradorDAO = new AdministradorDAOImp();
		}

		if (administradorDAO.isConnectionClose()) {
			administradorDAO.openConnection();
		}

		return administradorDAO;
	}
	
	private static NotaDAO notaDAO;

	public static NotaDAO getNotaDAO() {
		if (notaDAO == null) {
			notaDAO = new NotaDAOImp();
		}

		if (notaDAO.isConnectionClose()) {
			notaDAO.openConnection();
		}

		return notaDAO;
	}
	
	private static ItemDAO itemDAO;

	public static ItemDAO getItemDAO() {
		if (itemDAO == null) {
			itemDAO = new ItemDAOImp();
		}

		if (itemDAO.isConnectionClose()) {
			itemDAO.openConnection();
		}

		return itemDAO;
	}
	
	
}